Conversation
Contributor
There was a problem hiding this comment.
Pull Request Overview
This PR refactors the project structure to move core bot functionality out of the single main.py file into a dedicated core library. This improves organization, eliminates circular import issues, and enhances type safety by removing the need for quoted type annotations and if TYPE_CHECKING blocks.
Key Changes:
- Extracted bot classes and utilities from main.py into separate core modules
- Added new dependencies (pillow, asyncpraw, pytemperature) to project requirements
- Created dedicated admin cog for bot management commands
Reviewed Changes
Copilot reviewed 22 out of 24 changed files in this pull request and generated 11 comments.
Show a summary per file
| File | Description |
|---|---|
| main.py | Significantly simplified to only contain bot instantiation and startup logic |
| core/ | New library containing MyClient, Context, Command, Argument, and localization classes |
| cogs/ | Updated all cogs to import core types directly instead of using TYPE_CHECKING |
| pyproject.toml | Added new project dependencies |
| helpers/custom_args.py | Minor update to support both User and Member types |
Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Circular imports are a pain in the ass. This also improves performance (somehow almost 0.5s in startup time) while improving organization, clearness and readability
This moves every single class from
main.pyinto their own standalone class within thecorelibrary. This improves type safety by removing the requirement for developers to put quotation marks around type annotations for types like MyClient and Context. This also removes the need for theif TYPE_CHECKINGblock (thank god.)Obviously, MyClient will be renamed once the bot is done